package com.sxj.corejava.code06_数组;

import java.util.Arrays;

/**
 * @author 石小俊
 * @date 2024年03月12日 20:11
 */
public class Test09_二维数组 {
    public static void main(String[] args) {
        test04();
    }

    public static void test01(){
        // 定义一个规则的二维数组
        // 数组中的每一个元素都是数组,且这些数据的长度是一致的
        // m:表示数组的长度
        // n:数组中每一个数组元素的长度
        // 数据类型[][] = new 数据类型[m][n]
        int[][] arr = new int[3][2];
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[1][0] = 3;
        arr[1][1] = 4;
        arr[2][0] = 5;
        arr[2][1] = 6;

        for(int i = 0; i < arr.length; i++){
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void test02(){
        // 定义一个不规则的二维数组
        // m:表示数组的长度
        // 每一个数组元素的长度是未知的
        // 数据类型[][] = new 数据类型[m][]
        int[][] arr = new int[3][];
        // 该方式在赋值前必须指定每一个元素的长度
        arr[0] = new int[2];
        arr[0][0] = 1;
        arr[0][1] = 2;
        arr[1] = new int[3];
        arr[1][0] = 3;
        arr[1][1] = 4;
        arr[1][2] = 5;
        arr[2] = new int[4];
        arr[2][0] = 6;
        arr[2][1] = 7;
        arr[2][2] = 8;
        arr[2][3] = 9;
        for(int i = 0; i < arr.length; i++){
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void test03(){
        // 声明二维数组的同时为数组的元素赋值
        int[][] arr = new int[][]{
                {1,2,3,4},
                {5,6,7},
                {9,10,11,12,13,14},
                {15,16,17}
        };
        for(int i = 0; i < arr.length; i++){
            System.out.println(Arrays.toString(arr[i]));
        }
    }

    public static void test04(){
        // 简写方式
        int[][] arr = {
                {1,2,3,4},
                {5,6,7},
                {9,10,11,12,13,14},
                {15,16,17}
        };
        for(int i = 0; i < arr.length; i++){
            System.out.println(Arrays.toString(arr[i]));
        }
    }
}
